ROSRV
-------------------------------
ROSRV is a runtime verification framework for the Robot Operating System (ROS) [1]. 
ROS is an open-source framework for robot software development, providing operating 
system-like functionality on heterogeneous computer clusters. ROSRV integrates seamlessly 
with ROS and works as a transparent monitoring infrastructure that intercepts the commands 
and messages passing through the system and performs monitoring actions upon events of 
interest. Safety and security properties can be defined in a formal specification 
language, and are ensured by monitors generated automatically from specifications.

ROSRV has three components:

Specification Language		- All the specifications are provided by users. 
				  ROSRV generates C++ code automatically based on these 
				  specifications.
ROSMOP				- Generates monitor code from user-defined specifications.
Access Control			- ROSRV enforces access control based on a user-provided 
				  specification of access policies as input configuration. 
				  On receiving any XMLRPC request from nodes, RVMaster 
				  decides whether the request is allowed to go to the 
				  ROSMaster according to the specification.

More information can be found on http://fsl.cs.illinois.edu/ROSRV
-------------------------------
-- Compile
To generate monitors out of event specifications, first you have to compile the ROSMOP tool.
Go to rosmop directory and call
	ant

For the monitor generation and the compilation of RVMaster with the generated code, 
call the script rosmop with event specification(s) as input. For example:
	rosmop monitors/landshark_monitors/
or
	rosmop monitors/turtlesim/color.rv

-- Run
rvcore: runs ROSMaster and RVMaster

rvsim: runs the LandShark simulator (requires Webots) 
(to run turtlesim instead, use: rosrun turtlesim turtlesim_node)

rvjoystick: runs the joystick controller 
(to run the turtlesim controller instead, use: rosrun turtlesim turtle_teleop_key)

-- Monitoring options
rosrv
  -enable: enables given monitor(s)
  -disable: disables given monitor(s)
  -list: lists active monitors
  -rvstate: lists the status of RVMaster regarding monitors
